package com.eonmind.user.contract.dto;

import com.eonmind.common.contract.enums.user.NoticeTypesEnum;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.ToString;

import java.util.ArrayList;
import java.util.List;

/**
 * @author Xujie
 * @since 2025/6/1 16:16
 **/


public class UserNoticeDto {
    @Data
    @ToString
    public static class UserSendNoticeRequest {
        /**
         * 用户id
         */
        private Long userId;
        
        /**
         * 通知类型 枚举和数据库维护
         * 1 系统通知
         */
        @NotNull
        private NoticeTypesEnum noticeType;

        /**
         * 通知标题
         */
        @NotBlank
        private String noticeTitle;

        /**
         * 通知内容
         */
        @NotBlank
        private String noticeContent;


        /**
         * 通知标签
         */
        @NotNull
        private List<NoticeTagData> noticeTags = new ArrayList<>();

        @Data
        public static class NoticeTagData {
            /**
             * 标签名称
             */
            private String tagName = "";

            /**
             * 标签样式
             * tag 的Type danger、success等
             */
            private String tagStyle = "";
        }
    }
}
